1. Technical Field of the Invention
The present invention relates to an image sensing device comprising an arrayed plurality of photodetectors and, in particular, to the detection of bad pixels in such a device and the correction of pixel data output from those bad pixels.
2. Description of Related Art
It is well known in the art to assemble a plurality of photodetectors (also referred to in the art as xe2x80x9cphotositesxe2x80x9d) in an array format to create an image sensing device. Each individual photodetector operates to output a signal whose magnitude is proportional to the intensity of light incident on the site of the photodetector. These output signals can then be subsequently processed and manipulated to generate an image comprised of a plurality of individual picture elements (also referred to in the art as xe2x80x9cpixelsxe2x80x9d), wherein each pixel in the image corresponds with one of the photodetectors.
The individual photodetectors used in such a sensing device are typically photodiodes that are formed on a semiconductor substrate or chip. The array of these photodetectors may include thousands (if not hundreds of thousands or millions) of individual photodetectors. Even with a semiconductor manufacturing process having a 99% yield, it is recognized that the sensing device array will inevitably include a number of bad photodetectors (also referred to herein as xe2x80x9cbad pixelsxe2x80x9d). Requiring a semiconductor production line to produce sensors without any bad pixels is a very stringent and perhaps an economically unfeasible and unrealizable demand. It is accordingly accepted for sensors to include some bad pixels as long as a suitable mechanism is available to detect the bad pixels and satisfactorily correct the photodetector output signals. These detection/correction mechanisms generally comprise hardware or software processes that detect bad pixels based on their output signals and alter/replace their output signals to more accurately reflect the intensity of the light incident on the photodetector.
A bad pixel within a sensor may arise in a number of ways. First, the signal output from the photodetector may always give a high reading (a xe2x80x9chot pixelxe2x80x9d). This defect produces a brighter than expected spot in the generated image. Second, the signal output from the photodetector may always give a low reading (a xe2x80x9cdead pixelxe2x80x9d). This defect produces a darker that expected spot in the generated image. Third, a signal proportional to the incident light may be generated, but (due, for example, to incorrect photodiode gain, dark current and/or offset) does not accurately represent of the incident light in the sense that it differs from signals generated by other similarly situated photodetectors (a xe2x80x9cnoisy pixelxe2x80x9d). This defect produces an erroneous spot (color, intensity, contrast, and the like) in the generated image.
FIG. 1 shows a simplified schematic diagram of a sensor read-out operation in accordance with the prior art. A sensor array 10 includes a plurality of photodetectors 12. Each photodetector 12 outputs a signal (referred to herein as xe2x80x9cpixel dataxe2x80x9d) whose magnitude ideally has a predetermined monotonic relationship to the intensity of light incident on the photodetector. Although not explicitly shown, the generated signal for each pixel has a digital format (obtained through appropriate analog-to-digital conversion) normally ten to twelve bits in size.
A read-out buffer 14 is used to read out and capture either a horizontal row or vertical column of individual pixel data that is generated from the photodetectors. In this context, a horizontal row or a vertical column is referred to as a xe2x80x9clinexe2x80x9d 16. Following capture of a line 16 of pixel data in the buffer 14, each individual piece of pixel data 18 is processed by a bad pixel processor 20. The processor 20 operates to serially examine each piece of pixel data 18 in a line 16, detect instances where that piece of data has been output by a bad pixel, and in such cases effectuate a correction on the pixel data so that it more accurately represents the intensity of the light that is incident on the photodetector. Pixel data is then serially output 22 by the processor 20 for each pixel in either its original form 24 (i.e., as read out by the buffer 14) or a modified form 24xe2x80x2 (i.e., as corrected when a bad pixel is detected).
FIG. 2 shows a block diagram illustrating one known operation for bad pixel processing performed by processor 20 of FIG. 1. The bad pixel processor 20 serially processes the pixel data 18 captured by the buffer 14 for one line 16 (see, FIG. 1) one pixel at a time (generically referred to as pixel xe2x80x9cXxe2x80x9d) in order to determine if each piece of the pixel data under examination is generated by a bad pixel. To assist in the making of this determination, the mechanism includes a data buffer 26 that stores the pixel data 18 (as captured in buffer 14) for not only the pixel X under examination, but also for the pixels Y and Z that neighbor (e.g., are immediately adjacent to) the pixel X in the same read-out line 16.
A detection algorithm 28 processes the pixel data 18 for pixels X, Y and Z and determines if the pixel data for pixel X differs from the pixel data for pixels Y and Z (either individually, by median or on average) by a deviation that exceeds a certain threshold. If not, the pixel data 18 for pixel X is assumed to represent valid pixel data generated from a good pixel, and is serially output 22 in its original form 24. If there is an excessive deviation (beyond the threshold), the pixel data 18 for pixel X is assumed to be generated from a bad pixel, and a correction algorithm 30 is executed to modify the pixel data to produce modified pixel data 24xe2x80x2 that attempts to more accurately represent the intensity of the light that is incident on the photodetector. As an example, the correction algorithm may replace the pixel data 18 for pixel X with pixel data 24xe2x80x2 comprising the median or average value of the pixel data 18 for the adjacent pixels Y and Z on the same line 16. As another example, the correction algorithm may replace the pixel data 18 for pixel X with pixel data 24xe2x80x2 comprising the pixel data 18 for either one of the adjacent pixels Y or Z on the same line 16. Numerous other operations for correcting pixel data from bad pixel are known in the art. Following correction, the modified data 24xe2x80x2 for pixel X is passed to serial output 22.
FIG. 3 shows a block diagram illustrating another known operation for bad pixel processing performed by the processor 20 of FIG. 1. The bad pixel processor 20 serially processes the pixel data 18 captured by the buffer 14 for one line 16 (see, FIG. 1) one pixel at a time (generically referred to as pixel xe2x80x9cXxe2x80x9d) in order to determine if any of the pixel data under examination is generated by a bad pixel. To assist in the making of this determination, the processor 20 includes a data buffer 26 that stores the pixel data 18 (as currently captured in buffer 14) for not only the pixel X under examination, but also for the pixels Y and Z that neighbor (e.g., are immediately adjacent to) the pixel X in the currently read-out line 16(n). To farther assist in the making of this determination, the processor 20 includes a data buffer 32 storing the pixel data 18 that was previously captured in buffer 14 for an adjacent, previously read-out line 16(nxe2x88x921). More specifically, the pixel data 18 of interest comprises that pixel data for pixels A, B and C that most closely neighbor pixel X in the previously read-out line 16(nxe2x88x921).
A detection algorithm 28 processes the pixel data 18 for pixels A, B, C, X, Y and Z and determines if the pixel data for pixel X differs from the pixel data for pixels A, B, C, Y and Z (either individually, in pairs or groups, by median or on average) by a deviation that exceeds a certain threshold. If not, the pixel data 18 for pixel X is assumed to represent valid pixel data generated from a good pixel, and is serially output 22 in its original form 24. If there is an excessive deviation (beyond the threshold), the pixel data 18 for pixel X is assumed to be generated by a bad pixel, and a correction algorithm 30 is executed to modify the pixel data to generate modified pixel data 24xe2x80x2 that more accurately represents the intensity of the light that is incident on the photodetector. Again, as discussed above, any of the known operations for correcting bad pixel signal light data may be used, and beneficially pixel data from additional pixels (e.g., pixels A, B and C) may be evaluated during this correction. Following correction, the modified pixel data 24xe2x80x2 for pixel X is passed to serial output 22.
The bad pixel processing operation of FIG. 3 considers more pixel data 18 than the operation of FIG. 2 for purposes of both detecting bad pixels (see, operation 28) and correcting/modifying the pixel data for the detected bad pixels (see, operation 30). However, the operation illustrated in FIG. 3 has a significant memory overhead requirement. For example, consider an array 10 that generates for each photodetector 12 digitized pixel data 18 that is ten to twelve bits in magnitude, and wherein each line 16 includes one-thousand photodetectors (such as would be the case, for example, with a one mega-pixel sensor array). The bad pixel processor 20 would accordingly require, for the implementation shown in FIG. 3, a buffer 32 memory capable of storing 10-12 kbits of data in addition to the memory required for the buffer 26.
It is recognized that the array 10 along with the line read-out buffer 14 and the bad pixel processor 20 can be implemented on a single integrated circuit chip (i.e., the same semiconductor substrate). This is possible using, for example, CMOS fabrication techniques that allow for such an integration of components and functionalities. At the same time, however, even given the miniaturization capable through integrated circuit fabrication, the array 10 itself along with the associated circuitry (for example, the A/D conversion circuit, the line read-out buffer 14, the detector 28 and the corrector 30) take up a significant amount of semiconductor area, and there would be an advantage for many applications of the sensor if the memory requirements of at least the previous line 16(nxe2x88x921) buffer 32 could be minimized.
The invention provides a sensor that comprises a plurality of photodetectors arranged in a sensor array. Each photodetector generates an output signal of pixel data that is indicative of incident light intensity. This pixel data is read out from the array one line at a time and stored in a line buffer. The invention further includes a bad pixel processor that includes a first buffer storing pixel data obtained from the line buffer for a certain pixel in a currently read out line and pixel data for pixels adjacent to the certain pixel. A second buffer included in the processor stores characteristic features for each of the pixels in a line read out from the array previous to the currently read out line. The pixel data stored in the first buffer and the characteristic features stored in the second buffer are then processed to identify whether the certain pixel in the currently read out line is a bad pixel.
In one embodiment, processing tar bad pixel detection includes an operation that precludes any finding of the certain pixel as being a bad pixel if a characteristic feature in the second buffer indicates that a pixel in the previous line that is adjacent to the certain pixel in the current line was identified as a bad pixel.
In another embodiment, processing for bad pixel detection includes an operation that applies a variable detection threshold against the certain pixel, with the value of the threshold being set higher if the characteristic features stored in the second buffer indicate that a pixel in the previous line that is adjacent to the certain pixel in the current line was identified as a bad pixel.